package com.gdust.hzx.order.service;

import com.gdust.hzx.model.dto.h5.OrderInfoDto;
import com.gdust.hzx.model.entity.order.OrderInfo;
import com.gdust.hzx.model.vo.h5.TradeVo;
import com.github.pagehelper.PageInfo;

/**
 * ClassName: OrderInfoService
 * Package: com.gdust.hzx.order.service
 * Description:
 *
 * @Author syun
 * @Create 2024/12/27 21:30
 * @Version 1.0
 */
public interface OrderInfoService {
    /**
     * 确认下单接口
     * @return
     */
    TradeVo getTrade();

    /**
     * 提交订单
     * @param orderInfoDto 订单信息条件
     * @return
     */
    Long submitOrder(OrderInfoDto orderInfoDto);

    /**
     * 获取订单信息
     * @param orderId 订单id
     * @return
     */
    OrderInfo getOrderInfo(Long orderId);

    /**
     * 订单模块之立刻购买接口实现
     * @param skuId 商品的 SKU ID，用于识别和获取具体的商品信息
     * @return
     */
    TradeVo buy(Long skuId);

    /**
     * 获取订单分页列表
     * @param page 当前页
     * @param limit 每页记录数
     * @param orderStatus 订单状态
     * @return
     */
    PageInfo<OrderInfo> findOrderPage(Integer page, Integer limit, Integer orderStatus);


    /**
     * 根据订单编号获取订单信息（远程调用）
     * @param orderNo 订单号，用于唯一标识订单
     * @return
     */
    OrderInfo getOrderInfoByOrderNo(String orderNo);

    //更新订单状态
    void updateOrderStatus(String orderNo);
}
